1. Field of the Invention
The present invention relates to a data receiving apparatus, a data receiving method, and a computer-readable recording medium.
2. Related Art
In recent years, an IPTV that transmits TV signals on an IP network is widely used. A transmission protocol for the IPTV is set in a specification called “Pro-MPEG” (Moving Picture Experts Group). In the Pro-MPEG, it is assumed that a large number of reception nodes for videos delivered by servers are present and, in order to suppress loads on transmission servers, multicast transmission is used.
In the case of the multicast transmission, since guarantee of reachability of data by a TCP (Transmission Control Protocol) cannot be used, a method of recovering a loss of data to a certain degree with FEC (Forward Error Correction) is used.
The FEC is a method of restoring, when a part of data is lost as a result of adding redundant data to data desired to be transmitted and transmitting the data, the lost data using the remaining data not lost and the redundant data of the data (see, for example, JP-A 2008-131153 (Kokai)).
For example, specifically, when data A, B, and C are transmitted, data X calculated according to X=A xor B xor C is also transmitted. As a result of the transmission, when the data B is lost, a reception side can restore the data B from the remaining data A, C, and X according to B=A xor C xor X. However, two or more data such as A and B are lost, the data cannot be restored.
In the case of the IPTV, it is specified by the Pro-MPEG specification that a loss of data (video data and sound data) is compensated by applying the FEC. An FEC packet to be transmitted is generated by arranging plural data packets transmitted as RTP (Real time Transport Protocol) packets in a matrix shape, grouping the data packets in the vertical direction and the horizontal direction, and performing an exclusive OR (xor) operation of the grouped data packets. An FEC packet calculated from the group in the vertical direction is called column FEC packet and an FEC packet calculated from the group in the horizontal direction is called row FEC packet.
Three parameters (FEC parameters) called “SNBase”, “Offset”, and “NA” are included in headers of the FEC packets to be transmitted. SNBase indicates a sequence number of a leading data packet among the grouped data packets corresponding to the FEC packets. Offset indicates a sequence number of the data packets adjacent to each other in the same group. NA indicates the number of packets included in the groups.
A data reception side specifies a column FEC packet and a row FEC packet corresponding to the same matrix using the three parameters and performs data restoration processing. However, a method of specifying FEC packets corresponding to the same matrix from received plural FEC packets and specifying, for example, where in matrixes each of the FEC packets is located (a position of the FEC packet counted from the top) is not disclosed. Therefore, it is impossible to efficiently specify FEC packets corresponding to the same matrix and where in matrixes each of the FEC packets is located.
In data restoration processing, it is possible to cope with a larger number of losses by repeatedly performing restoration using column FEC packets and restoration using row FEC packets. However, since a load of repeated processing is high, it is requested to efficiently perform restoration of data without restoration omissions.